package com.itcs.app.pay;

import javax.servlet.http.HttpServletRequest;

import com.itcs.app.pay.model.QrcodeFilterRes;
import com.itcs.app.pay.model.QrcodePayModel;
import com.itcs.app.pay.model.QrcodePayRes;
import com.itcs.app.pay.model.TradePayModel;
import com.itcs.app.pay.model.TradePayRes;

/**
 * 支付平台适配器
 * 
 * @author LiuPeng
 * @date 2018年3月18日
 * 
 */
public interface PayPlatformAdapter {

	/**
	 * 获取支付平台类型
	 * 
	 * @return
	 */
	public String getPayPlatformType();

	/**
	 * 主扫（二维码）
	 * 
	 * @param request
	 * @param channel
	 *            支付渠道 @see PayChannelCode
	 * @return
	 */
	public QrcodePayRes qrcode(QrcodePayModel qrcodePayModel);

	/**
	 * 主扫 过滤处理（获取openId等） 当该接口返回 不为空时，调用 qrcode业务逻辑
	 * 
	 * @param request
	 * @param payChannelCode
	 * @return
	 */
	public QrcodeFilterRes qrcodeFilter(HttpServletRequest request, String payChannelCode);

	/**
	 * 被扫（条形码）
	 * 
	 * @param tradePayModel
	 * @return
	 */
	public TradePayRes tradePay(TradePayModel tradePayModel);

}
